@@ -335,7 +335,8 @@ class UserInfo(BaseModelMixin, LensmanTypeBoolMixin):  | 
            ||
| 335 | 335 | 
                login_at = models.DateTimeField(_(u'login_at'), blank=True, null=True, help_text=_(u'登录时间'))  | 
            
| 336 | 336 | 
                 | 
            
| 337 | 337 | 
                has_membercard = models.BooleanField(_(u'has_membercard'), default=False, help_text=_(u'是否激活会员卡'), db_index=True)  | 
            
| 338 | 
                - membercardid = models.CharField(_(u'membercardid'), max_length=32, blank=True, null=True, help_text=_(u'会员卡编号'))  | 
            |
| 338 | 
                + membercardid = models.CharField(_(u'membercardid'), max_length=32, blank=True, null=True, help_text=_(u'会员卡编号'), db_index=True)  | 
            |
| 339 | 
                + memberusercardcode = models.CharField(_(u'memberusercardcode'), max_length=32, blank=True, null=True, help_text=_(u'用户会员卡编号'), db_index=True)  | 
            |
| 339 | 340 | 
                 | 
            
| 340 | 341 | 
                test_user = models.BooleanField(_(u'test_user'), default=False, help_text=_(u'是否为测试用户'), db_index=True)  | 
            
| 341 | 342 | 
                 | 
            
                @@ -390,6 +391,8 @@ class UserInfo(BaseModelMixin, LensmanTypeBoolMixin):  | 
            ||
| 390 | 391 | 
                'phone': self.phone,  | 
            
| 391 | 392 | 
                # TODO: Diff for Brands  | 
            
| 392 | 393 | 
                'has_membercard': self.has_membercard,  | 
            
| 394 | 
                + 'membercardid': self.membercardid,  | 
            |
| 395 | 
                + 'memberusercardcode': self.memberusercardcode,  | 
            |
| 393 | 396 | 
                'saleclerk': bool(saleclerk_info),  | 
            
| 394 | 397 | 
                'saleclerk_info': saleclerk_info,  | 
            
| 395 | 398 | 
                }  | 
            
                @@ -33,15 +33,16 @@ def DJANGO_WE_MESSAGE_CALLBACK_FUNC(request, data, decrypted=None):  | 
            ||
| 33 | 33 | 
                """ WeChat Message Callback Func """  | 
            
| 34 | 34 | 
                from account.models import UserInfo  | 
            
| 35 | 35 | 
                 | 
            
| 36 | 
                -    event = dict(data).get('Event', '')
               | 
            |
| 37 | 
                -    fromusername = dict(data).get('FromUserName', '')
               | 
            |
| 38 | 
                -    unionid = dict(data).get('UnionId', '')
               | 
            |
| 39 | 
                -    membercardid = dict(data).get('CardId', '')
               | 
            |
| 36 | 
                +    event = data.get('Event', '')
               | 
            |
| 37 | 
                +    openid = fromusername = data.get('FromUserName', '')
               | 
            |
| 38 | 
                +    unionid = data.get('UnionId', '')
               | 
            |
| 39 | 
                +    membercardid = data.get('CardId', '')
               | 
            |
| 40 | 
                +    memberusercardcode = data.get('UserCardCode', '')
               | 
            |
| 40 | 41 | 
                 | 
            
| 41 | 42 | 
                if event == 'user_get_card':  | 
            
| 42 | 
                - UserInfo.objects.filter(unionid=unionid).update(has_membercard=True, membercardid=membercardid)  | 
            |
| 43 | 
                + UserInfo.objects.filter(openid_miniapp=openid).update(has_membercard=True, membercardid=membercardid, memberusercardcode=memberusercardcode)  | 
            |
| 43 | 44 | 
                elif event == 'user_del_card':  | 
            
| 44 | 
                - UserInfo.objects.filter(membercardid=membercardid).update(has_membercard=False)  | 
            |
| 45 | 
                + UserInfo.objects.filter(memberusercardcode=memberusercardcode).update(has_membercard=False)  | 
            |
| 45 | 46 | 
                 | 
            
| 46 | 47 | 
                 | 
            
| 47 | 48 | 
                def DJANGO_FILE_UPLOAD_CALLBACK_FUNC(request, file_path=None, file_url=None):  |